草庐IT

git - 将各种提交 merge 为一个而不 merge

全部标签

ruby - 为什么我们定义 `#initialize` 而不是 `::new`

在Ruby中,创建一个新类时,我们会这样定义构造方法:classThingdefinitializedo_stuffendend但是,当实际创建对象的实例时,我们发现自己不是在实例上调用initialize,而是在类上调用new。既然如此,我们为什么不定义::new?classThingdefself.newdo_stuffendend::new在initalize没有定义的场景后面有什么东西吗?这两者完全不同吗?定义::new会起作用吗?或者只是definitialize比defself.new更短(不是)?我认为这种差异一定有充分的理由。 最佳答案

ruby-on-rails - Rails 3 和 ActiveAdmin。过滤器显示对象而不是公司名称

我有一个客户列表,但在右栏的过滤器部分,我得到一个这样的列表#在选择菜单中。如何改为显示Customer的company_name属性? 最佳答案 明白了,谢谢!filter:customer,:collection=>proc{(Customer.all).map{|c|[c.company_name,c.id]}} 关于ruby-on-rails-Rails3和ActiveAdmin。过滤器显示对象而不是公司名称,我们在StackOverflow上找到一个类似的问题:

ruby - 如何在 Ruby 中为所有可能的值递增/递减一个字符?

我有一个长度为一个字符的字符串,可以是任何可能的字符值:irb(main):001:0>"\x0"=>"\u0000"我认为这可能有效:irb(main):002:0>"\x0"+=1SyntaxError:(irb):2:syntaxerror,unexpectedtOP_ASGN,expecting$end"\x0"+=1^from/opt/rh/ruby193/root/usr/bin/irb:12:in`'但是,如您所见,事实并非如此。我怎样才能增加/减少我的角色?编辑:Ruby似乎没有被设置为执行此操作。也许我正在以错误的方式接近这个。我想根据8位block来操作原始数据。我

ruby array,从第二个到最后一个获取所有元素

这个问题在这里已经有了答案:HowtoreturnapartofanarrayinRuby?(6个答案)关闭8年前。我的方法:defscroll_imagesimages_all[1..images_all.length]end我不喜欢调用images_all两次,只是想知道是否有一个好的技巧来调用self或类似的东西来使它更干净一些。

ruby-on-rails - 你能把一个变量放在正则表达式中吗?

我正在尝试验证Model.category是否等于任何现有的类别名称unlessCategory.exists?(:name=>self.category.downcase)我必须在其中放入小写字母以确保所有这些都是小写字母,以便它们可以匹配为字符串。但是更新属性before_save是一个很大的服务器命中,我正在考虑通过正则表达式匹配它们。像这样unlessCategory.exists?(:name=>/#{self.category}/}有这样的可能吗?或者有更好的方法吗? 最佳答案 是的,您可以在正则表达式中使用变量插值。>

ruby - 通过 Capistrano 创建 crontab 而不是使用 crontab -e

我想在我的Capistrano部署文件中包含cron任务,而不是使用以下命令手动编辑crontab文件:crontab-e[username]是否有我可以在Capistrano运行命令中使用的脚本来设置crontab的内容? 最佳答案 查看Whenevergem——这可能会超出您的预期,但它使用非常简单的(Ruby)语法,并且可以非常简单地在capistrano部署脚本中设置cron作业。 关于ruby-通过Capistrano创建crontab而不是使用crontab-e,我们在Sta

ruby-on-rails - 对于 Rails 中的某些情况,如何实现是/否而不是 boolean 值?

我是编程新手,但在我的应用程序中我希望某些情况显示"is"或“否”而不是“真”或“假”。我不确定最好的方法,我读过this问题,但并没有真正理解如何实现它。有人能帮我吗,最好把它放在初始化程序、帮助程序或其他地方吗?我希望能够在我希望显示是/否的任何地方调用我的View中的内容,或者创建一个自定义数据类型,在我的迁移中我可以创建类似t.boolean_yesno的内容,然后为我做的每一列它只会将true存储为yes,将false存储为no。如果有人帮助我走上正轨,我将不胜感激,我没有使用初始化器或助手的经验。谢谢! 最佳答案 语言环

ruby - 调用另一个不是 gem 的 ruby​​ 文件

我想创建一个带有函数库的静态ruby​​类。我在Vista上使用ruby​​1.9.2我的课是这个:classTestClassdefsay_helloputs"sayhello"endend在一个TestClass.rb文件中(我假设我是正确的,因为所有关于类的ruby​​教程都是一团糟,把所有东西都放在一个神奇的东西(文件?)中,就好像IRB是所有东西的开始和结束)。我的ruby​​main()(是的,我来自Java)或程序入口或在ruby​​中调用它的是:require'TestClass.rb'puts"start"say_hello但它失败了:C:\ruby_path_wit

ruby - 在一条语句中为多个对象赋一个值

如果我想声明三个新数组(a1、a2、a3),我可以这样做:a1=[]a2=[]a3=[]但现在我想在一条线上完成所有操作,例如a1,a2,a3=[]但这失败了。如何在一行中将它们全部分配给一个空数组? 最佳答案 要执行与第二个示例类似的操作,您仍然需要创建三个数组:a1,a2,a3=[],[],[] 关于ruby-在一条语句中为多个对象赋一个值,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/ques

ruby - 如何 "unflatten"一个 Ruby 数组?

我目前正在尝试转换这个ruby​​数组:[5,7,8,1]进入这个:[[5],[7],[8],[1]]我目前是这样做的:[5,7,8,1].select{|element|element}.collect{|element|element.to_a}但我收到以下警告:warning:default`to_a'willbeobsolete 最佳答案 最短最快的解决方案是使用Array#zip:values=[5,7,8,1]values.zip#=>[[5],[7],[8],[1]]另一种可爱的方式是使用transpose:[valu